# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        Young  
# Name:         demo10.10
# Description:
# Author:       $赵怡蕾
# Date:         2019/3/7
#-------------------------------------------------------------------------------

# 可无限制迭代斐波那契数列
class Fibonacci:
    # 在构造方法中定义两个变量a和b，用来表示斐波那契数列的最开始的两个值
    def __init__(self):
       self.a = 0
       self.b = 1
    def __next__(self):
        # self.a就是当前要迭代的值
        result = self.a
        # 计算斐波那契数列的下一个值，并将a变成原来的b，将b变成下一个值
        self.a,self.b = self.b,self.a + self.b
        # 返回当前迭代的值
        return result
    # 该方法必须返回一个迭代器
    def __iter__(self):
        return self

fibs = Fibonacci()
# 对斐波那契数列进行迭代
for fib in fibs:
    print(fib,end=" ")
    # 迭代的值不能超过500
    if fib > 500:
        break